/**
 * 建议尽量全字段或者区域多字段进行匹配, 避免误触
 */
// Import("ocr.js")
// Import("utils.js")
// Import("ggUtils.js")
Import("ggUtils_抖火.js")

// SystemPrint.log(app.getTopPackName())
var APP_NAME_DYHSB = '抖音火山版'
var PACK_NAME_DYHSB = 'com.ss.android.ugc.live'
var MAIN_PAGE_FLAG_DYHSB = '首页'
var ENTER_CENTER_PAGE_FLAG_DYHSB = '进入任务中心的标志位'
var CENTER_PAGE_FLAG_DYHSB = '当前火苗'

function skip_comom__DYHSB() {
    agentOrHidClick(ocrTextMoreInCenter('拒绝', '以后再说'))

    var detectsclose = opencv.findImagesEx('图色437061.cv');
    if (detectsclose != null) {
        agentOrHidClick(detectsclose[0])
    }
}

function skip_主界面的弹窗_DYHSB() {
    skip_comom__DYHSB()
}

function skip_任务中心的弹窗_DYHSB() {
    skip_comom__DYHSB()

    var detectsclose2 = opencv.findImagesEx('图色845498.cv');
    if (detectsclose2 != null) {
        agentOrHidClick(detectsclose2[0])
    }

    if(ocrText('我的活动钱包', '查看奖励详情')){
        agentOrHidback()
    }
}

function back2center_DYHSB() {

}


function move2顶部() {
    move2Top(4, 300, '当前火苗', '火苗账单')
}

// 启动任务
function start_app_DYHSB() {
    // app.closeApp(PACK_NAME_DYHSB)
    // sleep.millisecond(200)
    printinfoOld('start_app_DYHSB')

    var isuccess = startApp(PACK_NAME_DYHSB)
    if (!isuccess) {
        return false
    }

    // 跳过首页广告
    expectView(() => {
        return ocrTextMoreInRegion(0, 0.88, 1, 1, MAIN_PAGE_FLAG_DYHSB, '推荐')
    }, (times) => {
        skip_主界面的弹窗_DYHSB()

        if (times > 3) {
            agentOrHidback()
            sleep.millisecond(500)
            // todo
        }
        sleep.millisecond(500)
    }, (findView) => {
        // agentOrHidClick(findView)
    }, null, 3)

    return true
}

// 进入任务中心
function enter_任务中心_DYHSB(iskip) {
    printinfoOld('enter_任务中心_DYHSB')

    if (iskip == undefined) iskip = false

    // 进入任务中心
    expectView(() => {
        var detects红包 = opencv.findImagesEx('图色124178.cv');
        if (detects红包 == null) {
            detects红包 = opencv.findMultiColorEx('图色491614.cv');
        }
        if (detects红包 != null) {
            return detects红包[0]
        }
        return null
    }, (times) => {
        skip_主界面的弹窗_DYHSB()

        sleep.millisecond(500)
        SystemPrint.warn('未找到主界面期望标志位')
    }, (findView, stepTimes) => {
        if (stepTimes == 1) {
            skip_主界面的弹窗_DYHSB()
        }
        agentOrHidClick(findView)
    }, () => {
        // 失败后的方案 或者其它方案进入
        // clickOffectY(3 / 8, 1, 60)
        //找色返回目标数组
        var detectshongbao = opencv.findMultiColorEx('图色484277.cv');
        if (detectshongbao != null) {
            agentOrHidClick(detectshongbao[0])
        } else {
            printerr('进入抖音火山任务中心异常!')
        }
    }, 6)




    if (iskip) {
        // 等待任务页加载完成
        printinfoOld('等待宝箱的出现')
        if (!ocrWaitForMoreTextMillisecond('当前火苗', '火苗账单', '限时任务', '签到得', '限时任务')) {
            agentOrHidClick(ocrText('立即签到+', '立即签到', '立即签'), 3, () => {
                setExcuteFunc('open_签到_DYHSB')
            })
            skip_主界面的弹窗_DYHSB()

            enter_任务中心_DYHSB()
        }
    }

}


function open_签到_DYHSB() {
    printinfoOld('open_签到_DYHSB-------------------------------')
    // skip_任务中心的弹窗_DYHSB()

    if (hasExcuteFunc('open_签到_DYHSB') || getExcuteFuncTimes('open_签到_DYHSB') > 5) {
        return
    }
    if (getExcuteFuncTimes('open_签到_DYHSB') > 3) {
        agentOrHidClick(ocrText('去领取'), 2, () => {
            agentOrHidClick(ocrText('点击领取'))

            skip_任务中心的弹窗_DYHSB()
        })

        moveUp2FindWidTxtMore((findView) => {
            agentOrHidClick(findView)
            agentOrHidClick(ocrText('立即签到+', '立即签到'))
            // setExcuteFunc('watch_看广告_DYHSB')
        }, '去签到', '今日签到立得', '今日签到', null, null, () => {
            return ocrText('没有更多了', '我的赠送榜', '我的收礼')
        }, () => {
            addExcuteFuncTimes('watch_看广告_DYHSB_failtimes')
        })
        setExcuteFunc('open_签到_DYHSB')
        return
    }

    // if (ocrText('明日领')) {
    //     setExcuteFunc('open_签到_DYHSB')
    //     return
    // }

    agentOrHidClick(ocrWaitForMoreTextMillisecond('点击领取', '立即签到', '点击签到', '去签到', 10), 2, () => {
        //   ocrTextTrue('立即签到')
        agentOrHidClick(ocrText('立即签到+', '立即签到'))
        setExcuteFunc('open_签到_DYHSB')
    })

    addExcuteFuncTimes('open_签到_DYHSB')

    skip_任务中心的弹窗_DYHSB()
}

function open_开宝箱_DYHSB() {
    printinfoOld('open_开宝箱_DYHSB-------------------------------')


    if (hasExcuteFunc('open_开宝箱_DYHSB')) {
        if (hasExcuteFunc('watch_看广告_DYHSB')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_DYHSB', 24 * 60 * 60)
        }
        return

    }
    skip_任务中心的弹窗_DYHSB()

    // ocrTextTrue('已达上限')
    if (ocrText('今日已达上限', '今日已达', '已达上限', '今日己达上限')) {
        setExcuteFunc('open_开宝箱_DYHSB')
        if (hasExcuteFunc('watch_看广告_DYHSB')) {
            setExcuteFunc('start_收集金币_DYHSB')
        }
        return
    }

    var bxFlag = ocrTextMoreInRegion(0, 0.8, 1, 1, '开宝箱得火苗', '点击立得')
    if (bxFlag == null) {
        //找图返回目标数组
        var bxdects = opencv.findImagesEx('图色855337.cv');
        if (bxdects != null) {
            bxFlag = bxdects[0]
        } else {
            printwarn('抖音火山版没有检测到宝箱')
        }
    }
    agentOrHidClick(bxFlag, 3, () => {
        watchGG_多次看广告_抖火(ocrWaitForText('看广告视频再', '广告视频再', '看视频再', '看广告再'), false, false, 4)
    })

    // ocrText('评价并收下', true)
    agentOrHidClick(ocrTextMoreInCenter('评价并收下', '好的', '并收下火苗'))
    skip_任务中心的弹窗_DYHSB()
}

function watch_看广告_DYHSB() {
    printinfoOld('watch_看广告_DYHSB-------------------------------')

    if (hasExcuteFuncInTime是否在一段时间内执行过('watch_看广告_DYHSB')) {
        return
    }

    // SystemPrint.log(hasExcuteFunc('watch_看广告_DYHSB'))
    if (hasExcuteFunc('watch_看广告_DYHSB')) {
        if (hasExcuteFunc('open_开宝箱_DYHSB')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_DYHSB', 24 * 60 * 60)
        }
        return
    }

    if (getExcuteFuncTimes('watch_看广告_DYHSB_failtimes') >= 5) {
        setExcuteFunc('watch_看广告_DYHSB')
        if (hasExcuteFunc('open_开宝箱_DYHSB')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_DYHSB', 24 * 60 * 60)
            setExcuteFunc('start_收集金币_DYHSB')
        }
        return
    }

    skip_任务中心的弹窗_DYHSB()

    // var detects宝箱close = opencv.findImagesEx('图色183247.cv');
    // if (detects宝箱close == null) {
    //     agentSwipSmallDown()
    //     detects宝箱close = opencv.findImagesEx('图色183247.cv');
    // }
    // if (detects宝箱close != null) {
    //     agentOrHidClick(detects宝箱close[0])
    // }

    move2顶部()
    // 只执行一次
    moveUpHigher2FindWidTxtMore((findView) => {
        addExcuteFuncTimes('watch_看广告_DYHSB_failtimes', 0)
        agentOrHidClickAbsoultXOffectY(findView, screen.percentToWidth(1) - 150, -50)
        if (!isInGGView()) {
            agentOrHidClickAbsoultXOffectY(findView, screen.percentToWidth(1) - 150, -20)
            if (!isInGGView()) {
                agentOrHidClickAbsoultXOffectY(findView, screen.percentToWidth(1) - 200, -20)
            }
        }
        watchGG_多次看广告_抖火(findView, true)
        setExcuteFuncInTime一段时间内不再执行('watch_看广告_DYHSB', 10 * 60)
        agentOrHidClick(ocrTextMoreInCenter('评价并收下'), 2, () => {
            agentOrHidClick(ocrTextMoreInCenter('评价并收下'))
        })
        skip_任务中心的弹窗_DYHSB()
        // setExcuteFunc('watch_看广告_DYHSB')
    }, '限时任务赚', '每20分钟', '看1次视频得火苗', null, null, () => {
        return ocrText('没有更多了', '我的赠送榜', '我的收礼')
    }, () => {
        addExcuteFuncTimes('watch_看广告_DYHSB_failtimes')
    })
}

// check_看视频进度_DYHSB()
function check_看视频进度_DYHSB() {
    printinfoOld('check_看视频进度_DYHSB-------------------------------')
    if (hasExcuteFunc('start_挂机任务_DYHSB')) {
        return
    }

    if (isEnableSwitch('hs_pbgjrw')) {
        return
    }

    skip_任务中心的弹窗_DYHSB()
    move2顶部()
    moveUp2FindWidTxtMore(() => {
        //找图返回目标数组
        // var detects视频进度 = ocrText('再看30分钟')//opencv.findImagesEx('图色532954.cv');
        // if (detects视频进度 != null) {
        //     
        //     printwarn('视频已经看过了, 跳过浏览挂机任务!!!')
        //     setExcuteFunc('start_挂机任务_DYHSB')
        //     setExcuteFunc('start_浏览任务_DYHSB')
        // }
    }, '看视频最高得', '本时段再看', '看视频最高', '本时段再看', '看视频最高', () => {
        return ocrText('没有更多', '我的赠送榜', '我的收礼')
    }, () => {
        addExcuteFuncTimes('check_看视频进度_DYHSB_fail')
        if (getExcuteFuncTimes('check_看视频进度_DYHSB_fail') > 2) {
            setExcuteFunc('start_挂机任务_DYHSB')
            setExcuteFunc('start_浏览任务_DYHSB')
        }
    })

}

// 进行浏览任务
function start_浏览任务_DYHSB() {
    printinfoOld('start_浏览任务_DYHSB')
    if(isEnableSwitch('chwl_dyhsb')){
        return
    }
    if (hasExcuteFunc('start_浏览任务_DYHSB')) {
        return
    }

    if (!start_app_DYHSB()) {
        return
    }

    skip_主界面的弹窗_DYHSB()

    whilestep((stepTimes) => {
        if (stepTimes % 2 == 0 || stepTimes % 3 == 0) {
            agentSwipBig()
        }
    }, 5 * 60, 5)

    setExcuteFunc('start_浏览任务_DYHSB')

    stopAllApp()
}

// start_挂机任务_DYHSB()
function start_挂机任务_DYHSB() {
    if(isEnableSwitch('chwl_dyhsb')){
        return
    }
    printinfoOld('start_挂机任务_DYHSB')
    if (isEnableSwitch('hs_pbgjrw')) {
        return
    }
    if (hasExcuteFunc('start_挂机任务_DYHSB')) {
        return
    }

    if (!start_app_DYHSB()) {
        return
    }

    skip_主界面的弹窗_DYHSB()

    expectViewSample(() => {
        var detects搜索 = opencv.findImagesEx('图色401167.cv');
        if (detects搜索) {
            return detects搜索[0]
        }
        return null
    }, () => {
        sleep.second(1)
        skip_主界面的弹窗_DYHSB()
    }, (findview) => {
        agentOrHidClick(findview, 3)

        if (opencv.findImagesEx('图色401167.cv')) {
            agentOrHidClick(findview)
        }
        Clipboard.copy('60分钟长视频黑屏')
        sleep.second(2)
        agentOrHidClick(ocrText('60分钟长视频黑屏', '长视频黑屏', '60分钟'), 3)
        // enter60分钟视频(detects搜索[0])

        var flagsearch = ocrTextInRegion(0, 0, 1, 0.2, '搜索')
        if (!flagsearch) {
            //找图返回目标数组
            var detects = opencv.findImagesEx('图色848962.cv');
            if (detects != null) {
                flagsearch = detects[0]
            }
        }
        agentClickRight(flagsearch)
    })


    printinfoOld('进入播放页')
    //找图返回目标数组
    expectViewSample(() => {
        var detects进入播仿 = opencv.findImagesEx('图色280249.cv');
        if (detects进入播仿 != null) {
            return detects进入播仿[0]
        }
        return null
    }, () => {
        sleep.millisecond(500)
    }, (findView) => {
        agentOrHidClickAbsoultXOffectY(findView, screen.percentToWidth(0.5), 150)
    })


    expectView(() => {
        var detects红包 = opencv.findImagesEx('图色124178.cv');
        if (detects红包 != null) {
            return detects红包[0]
        }

        var detects进入播仿 = opencv.findImagesEx('图色280249.cv');
        if (detects进入播仿 != null) {
            agentOrHidClickAbsoultXOffectY(detects进入播仿[0], screen.percentToWidth(0.5), 150)
        }

        return null
    }, () => {
        sleep.second(1)
    }, () => {
        whilestep((steptimes) => {
            if (steptimes % 5 == 0) {
                //找图返回目标数组
                var detectsclose = opencv.findImagesEx('图色621084.cv');
                if (detectsclose != null) {
                    agentOrHidClick(detectsclose[0])
                    agentSwipBig()
                }
            }
        }, (60) * 60)
        // if (isBetweenTime(0, 4)) {
        //     setExcuteFunc('start_挂机任务_DYHSB')
        // }
        addExcuteFuncTimes('start_挂机任务_DYHSB')

        if (getExcuteFuncTimes('start_挂机任务_DYHSB') >= 1) {
            setExcuteFunc('start_挂机任务_DYHSB')
        }
    })

    stopAllApp()
}


// start_收集金币_DYHSB()
function start_收集金币_DYHSB() {
    printinfoOld('start_收集金币_DYHSB')
    if (hasExcuteFunc('start_收集金币_DYHSB')) {
        return
    }
    if (!isAllow允许登录(PACK_NAME_DYHSB)) {
        if (getExcuteFuncTimes('start_收集金币_DYHSB') == 0) {
            
            printwarn('xxx启动失败或被屏蔽')
            sleep.second(10)
            
            addExcuteFuncTimes('start_收集金币_DYHSB')
        }
        return
    }
    currentAppPackName = PACK_NAME_DYHSB
    // closeApp(PACK_NAME_DYHSB)

    if (!start_app_DYHSB()) {
        return
    }

    addExcuteFuncTimes('start_收集金币_DYHSB')

    enter_任务中心_DYHSB(true)


    startThredTaskMaxTime超时结束(() => {

        open_签到_DYHSB()

        open_开宝箱_DYHSB()

        // if (!ocrWaitForMoreTextMillisecond('当前火苗', '火苗账单', '限时任务', '签到得', '限时任务', '我的火苗', '更多任务')) {
        //     enter_任务中心_DYHSB(true)
        // }

        watch_看广告_DYHSB()


        check_看视频进度_DYHSB()
    }, 15 * 60)


    stopAllApp()
    // closeApp(PACK_NAME_DYHSB)
}